{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "The autoreload extension is already loaded. To reload it, use:\n  %reload_ext autoreload\n"
     ]
    }
   ],
   "source": [
    "import time\n",
    "import numpy as np\n",
    "import h5py\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy\n",
    "from PIL import Image\n",
    "from scipy import ndimage\n",
    "\n",
    "%matplotlib inline\n",
    "plt.rcParams['figure.figsize'] = (5.0, 4.0) # set default size of plots\n",
    "plt.rcParams['image.interpolation'] = 'nearest'\n",
    "plt.rcParams['image.cmap'] = 'gray'\n",
    "\n",
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "\n",
    "np.random.seed(1)"
   ]
  },
  {
   "source": [
    "# 1. 导入数据预处理"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "def load_data():\n",
    "    train_data = h5py.File('datasets/train_catvnoncat.h5')\n",
    "    train_x_orig = np.array(train_data['train_set_x'][:])\n",
    "    train_y = np.array(train_data['train_set_y'][:])\n",
    "\n",
    "    test_data = h5py.File('datasets/test_catvnoncat.h5')\n",
    "    test_x_orig = np.array(test_data['test_set_x'][:])\n",
    "    test_y = np.array(test_data['test_set_y'][:])\n",
    "    \n",
    "    return train_x_orig, train_y, test_x_orig, test_y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_x_orig, train_y, test_x_orig, test_y = load_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "train_x_orig.shape = (209, 64, 64, 3)\ntrain_y.shape = (209,)\n"
     ]
    }
   ],
   "source": [
    "print('train_x_orig.shape = ' + str(train_x_orig.shape))\n",
    "print('train_y.shape = ' + str(train_y.shape))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "n = train_x_orig.shape[1] * train_x_orig.shape[2] * train_x_orig.shape[3]\n",
    "train_x_flatten = train_x_orig.reshape(train_x_orig.shape[0], n).T\n",
    "test_x_flatten = test_x_orig.reshape(test_x_orig.shape[0], -1).T\n",
    "train_x = train_x_flatten/255\n",
    "test_x = test_x_flatten/255\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "train_x.shape = (12288, 209)\ntest_x.shape = (12288, 209)\ntrain_y.shape = (209,)\n"
     ]
    }
   ],
   "source": [
    "print('train_x.shape = ' + str(train_x.shape))\n",
    "print('test_x.shape = ' + str(train_x.shape))\n",
    "print('train_y.shape = ' + str(train_y.shape))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x2121dcd41f0>"
      ]
     },
     "metadata": {},
     "execution_count": 41
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": "<Figure size 360x288 with 1 Axes>",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"250.618594pt\" version=\"1.1\" viewBox=\"0 0 251.565 250.618594\" width=\"251.565pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n   <cc:Work>\r\n    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n    <dc:date>2021-03-28T13:09:10.300578</dc:date>\r\n    <dc:format>image/svg+xml</dc:format>\r\n    <dc:creator>\r\n     <cc:Agent>\r\n      <dc:title>Matplotlib v3.3.3, https://matplotlib.org/</dc:title>\r\n     </cc:Agent>\r\n    </dc:creator>\r\n   </cc:Work>\r\n  </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n  <g id=\"patch_1\">\r\n   <path d=\"M -0 250.618594 \r\nL 251.565 250.618594 \r\nL 251.565 0 \r\nL -0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n  </g>\r\n  <g id=\"axes_1\">\r\n   <g id=\"patch_2\">\r\n    <path d=\"M 26.925 226.740469 \r\nL 244.365 226.740469 \r\nL 244.365 9.300469 \r\nL 26.925 9.300469 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n   </g>\r\n   <g clip-path=\"url(#pca8c235019)\">\r\n    <image height=\"218\" id=\"image379d82feb1\" transform=\"scale(1 -1)translate(0 -218)\" width=\"218\" x=\"26.925\" xlink:href=\"data:image/png;base64,\r\n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\" y=\"-8.740469\"/>\r\n   </g>\r\n   <g id=\"matplotlib.axis_1\">\r\n    <g id=\"xtick_1\">\r\n     <g id=\"line2d_1\">\r\n      <defs>\r\n       <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"m4fe2f8e202\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n      </defs>\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"28.62375\" xlink:href=\"#m4fe2f8e202\" y=\"226.740469\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_1\">\r\n      <!-- 0 -->\r\n      <g transform=\"translate(25.4425 241.338906)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_2\">\r\n     <g id=\"line2d_2\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"62.59875\" xlink:href=\"#m4fe2f8e202\" y=\"226.740469\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_2\">\r\n      <!-- 10 -->\r\n      <g transform=\"translate(56.23625 241.338906)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 12.40625 8.296875 \r\nL 28.515625 8.296875 \r\nL 28.515625 63.921875 \r\nL 10.984375 60.40625 \r\nL 10.984375 69.390625 \r\nL 28.421875 72.90625 \r\nL 38.28125 72.90625 \r\nL 38.28125 8.296875 \r\nL 54.390625 8.296875 \r\nL 54.390625 0 \r\nL 12.40625 0 \r\nz\r\n\" id=\"DejaVuSans-49\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_3\">\r\n     <g id=\"line2d_3\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"96.57375\" xlink:href=\"#m4fe2f8e202\" y=\"226.740469\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_3\">\r\n      <!-- 20 -->\r\n      <g transform=\"translate(90.21125 241.338906)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 19.1875 8.296875 \r\nL 53.609375 8.296875 \r\nL 53.609375 0 \r\nL 7.328125 0 \r\nL 7.328125 8.296875 \r\nQ 12.9375 14.109375 22.625 23.890625 \r\nQ 32.328125 33.6875 34.8125 36.53125 \r\nQ 39.546875 41.84375 41.421875 45.53125 \r\nQ 43.3125 49.21875 43.3125 52.78125 \r\nQ 43.3125 58.59375 39.234375 62.25 \r\nQ 35.15625 65.921875 28.609375 65.921875 \r\nQ 23.96875 65.921875 18.8125 64.3125 \r\nQ 13.671875 62.703125 7.8125 59.421875 \r\nL 7.8125 69.390625 \r\nQ 13.765625 71.78125 18.9375 73 \r\nQ 24.125 74.21875 28.421875 74.21875 \r\nQ 39.75 74.21875 46.484375 68.546875 \r\nQ 53.21875 62.890625 53.21875 53.421875 \r\nQ 53.21875 48.921875 51.53125 44.890625 \r\nQ 49.859375 40.875 45.40625 35.40625 \r\nQ 44.1875 33.984375 37.640625 27.21875 \r\nQ 31.109375 20.453125 19.1875 8.296875 \r\nz\r\n\" id=\"DejaVuSans-50\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-50\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_4\">\r\n     <g id=\"line2d_4\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"130.54875\" xlink:href=\"#m4fe2f8e202\" y=\"226.740469\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_4\">\r\n      <!-- 30 -->\r\n      <g transform=\"translate(124.18625 241.338906)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 40.578125 39.3125 \r\nQ 47.65625 37.796875 51.625 33 \r\nQ 55.609375 28.21875 55.609375 21.1875 \r\nQ 55.609375 10.40625 48.1875 4.484375 \r\nQ 40.765625 -1.421875 27.09375 -1.421875 \r\nQ 22.515625 -1.421875 17.65625 -0.515625 \r\nQ 12.796875 0.390625 7.625 2.203125 \r\nL 7.625 11.71875 \r\nQ 11.71875 9.328125 16.59375 8.109375 \r\nQ 21.484375 6.890625 26.8125 6.890625 \r\nQ 36.078125 6.890625 40.9375 10.546875 \r\nQ 45.796875 14.203125 45.796875 21.1875 \r\nQ 45.796875 27.640625 41.28125 31.265625 \r\nQ 36.765625 34.90625 28.71875 34.90625 \r\nL 20.21875 34.90625 \r\nL 20.21875 43.015625 \r\nL 29.109375 43.015625 \r\nQ 36.375 43.015625 40.234375 45.921875 \r\nQ 44.09375 48.828125 44.09375 54.296875 \r\nQ 44.09375 59.90625 40.109375 62.90625 \r\nQ 36.140625 65.921875 28.71875 65.921875 \r\nQ 24.65625 65.921875 20.015625 65.03125 \r\nQ 15.375 64.15625 9.8125 62.3125 \r\nL 9.8125 71.09375 \r\nQ 15.4375 72.65625 20.34375 73.4375 \r\nQ 25.25 74.21875 29.59375 74.21875 \r\nQ 40.828125 74.21875 47.359375 69.109375 \r\nQ 53.90625 64.015625 53.90625 55.328125 \r\nQ 53.90625 49.265625 50.4375 45.09375 \r\nQ 46.96875 40.921875 40.578125 39.3125 \r\nz\r\n\" id=\"DejaVuSans-51\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-51\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_5\">\r\n     <g id=\"line2d_5\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"164.52375\" xlink:href=\"#m4fe2f8e202\" y=\"226.740469\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_5\">\r\n      <!-- 40 -->\r\n      <g transform=\"translate(158.16125 241.338906)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 37.796875 64.3125 \r\nL 12.890625 25.390625 \r\nL 37.796875 25.390625 \r\nz\r\nM 35.203125 72.90625 \r\nL 47.609375 72.90625 \r\nL 47.609375 25.390625 \r\nL 58.015625 25.390625 \r\nL 58.015625 17.1875 \r\nL 47.609375 17.1875 \r\nL 47.609375 0 \r\nL 37.796875 0 \r\nL 37.796875 17.1875 \r\nL 4.890625 17.1875 \r\nL 4.890625 26.703125 \r\nz\r\n\" id=\"DejaVuSans-52\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-52\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_6\">\r\n     <g id=\"line2d_6\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"198.49875\" xlink:href=\"#m4fe2f8e202\" y=\"226.740469\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_6\">\r\n      <!-- 50 -->\r\n      <g transform=\"translate(192.13625 241.338906)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 10.796875 72.90625 \r\nL 49.515625 72.90625 \r\nL 49.515625 64.59375 \r\nL 19.828125 64.59375 \r\nL 19.828125 46.734375 \r\nQ 21.96875 47.46875 24.109375 47.828125 \r\nQ 26.265625 48.1875 28.421875 48.1875 \r\nQ 40.625 48.1875 47.75 41.5 \r\nQ 54.890625 34.8125 54.890625 23.390625 \r\nQ 54.890625 11.625 47.5625 5.09375 \r\nQ 40.234375 -1.421875 26.90625 -1.421875 \r\nQ 22.3125 -1.421875 17.546875 -0.640625 \r\nQ 12.796875 0.140625 7.71875 1.703125 \r\nL 7.71875 11.625 \r\nQ 12.109375 9.234375 16.796875 8.0625 \r\nQ 21.484375 6.890625 26.703125 6.890625 \r\nQ 35.15625 6.890625 40.078125 11.328125 \r\nQ 45.015625 15.765625 45.015625 23.390625 \r\nQ 45.015625 31 40.078125 35.4375 \r\nQ 35.15625 39.890625 26.703125 39.890625 \r\nQ 22.75 39.890625 18.8125 39.015625 \r\nQ 14.890625 38.140625 10.796875 36.28125 \r\nz\r\n\" id=\"DejaVuSans-53\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-53\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_7\">\r\n     <g id=\"line2d_7\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"232.47375\" xlink:href=\"#m4fe2f8e202\" y=\"226.740469\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_7\">\r\n      <!-- 60 -->\r\n      <g transform=\"translate(226.11125 241.338906)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 33.015625 40.375 \r\nQ 26.375 40.375 22.484375 35.828125 \r\nQ 18.609375 31.296875 18.609375 23.390625 \r\nQ 18.609375 15.53125 22.484375 10.953125 \r\nQ 26.375 6.390625 33.015625 6.390625 \r\nQ 39.65625 6.390625 43.53125 10.953125 \r\nQ 47.40625 15.53125 47.40625 23.390625 \r\nQ 47.40625 31.296875 43.53125 35.828125 \r\nQ 39.65625 40.375 33.015625 40.375 \r\nz\r\nM 52.59375 71.296875 \r\nL 52.59375 62.3125 \r\nQ 48.875 64.0625 45.09375 64.984375 \r\nQ 41.3125 65.921875 37.59375 65.921875 \r\nQ 27.828125 65.921875 22.671875 59.328125 \r\nQ 17.53125 52.734375 16.796875 39.40625 \r\nQ 19.671875 43.65625 24.015625 45.921875 \r\nQ 28.375 48.1875 33.59375 48.1875 \r\nQ 44.578125 48.1875 50.953125 41.515625 \r\nQ 57.328125 34.859375 57.328125 23.390625 \r\nQ 57.328125 12.15625 50.6875 5.359375 \r\nQ 44.046875 -1.421875 33.015625 -1.421875 \r\nQ 20.359375 -1.421875 13.671875 8.265625 \r\nQ 6.984375 17.96875 6.984375 36.375 \r\nQ 6.984375 53.65625 15.1875 63.9375 \r\nQ 23.390625 74.21875 37.203125 74.21875 \r\nQ 40.921875 74.21875 44.703125 73.484375 \r\nQ 48.484375 72.75 52.59375 71.296875 \r\nz\r\n\" id=\"DejaVuSans-54\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-54\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n   </g>\r\n   <g id=\"matplotlib.axis_2\">\r\n    <g id=\"ytick_1\">\r\n     <g id=\"line2d_8\">\r\n      <defs>\r\n       <path d=\"M 0 0 \r\nL -3.5 0 \r\n\" id=\"m12c06cc066\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n      </defs>\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m12c06cc066\" y=\"10.999219\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_8\">\r\n      <!-- 0 -->\r\n      <g transform=\"translate(13.5625 14.798437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_2\">\r\n     <g id=\"line2d_9\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m12c06cc066\" y=\"44.974219\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_9\">\r\n      <!-- 10 -->\r\n      <g transform=\"translate(7.2 48.773437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_3\">\r\n     <g id=\"line2d_10\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m12c06cc066\" y=\"78.949219\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_10\">\r\n      <!-- 20 -->\r\n      <g transform=\"translate(7.2 82.748437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-50\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_4\">\r\n     <g id=\"line2d_11\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m12c06cc066\" y=\"112.924219\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_11\">\r\n      <!-- 30 -->\r\n      <g transform=\"translate(7.2 116.723437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-51\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_5\">\r\n     <g id=\"line2d_12\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m12c06cc066\" y=\"146.899219\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_12\">\r\n      <!-- 40 -->\r\n      <g transform=\"translate(7.2 150.698437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-52\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_6\">\r\n     <g id=\"line2d_13\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m12c06cc066\" y=\"180.874219\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_13\">\r\n      <!-- 50 -->\r\n      <g transform=\"translate(7.2 184.673437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-53\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_7\">\r\n     <g id=\"line2d_14\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"26.925\" xlink:href=\"#m12c06cc066\" y=\"214.849219\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_14\">\r\n      <!-- 60 -->\r\n      <g transform=\"translate(7.2 218.648437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-54\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n   </g>\r\n   <g id=\"patch_3\">\r\n    <path d=\"M 26.925 226.740469 \r\nL 26.925 9.300469 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_4\">\r\n    <path d=\"M 244.365 226.740469 \r\nL 244.365 9.300469 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_5\">\r\n    <path d=\"M 26.925 226.740469 \r\nL 244.365 226.740469 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_6\">\r\n    <path d=\"M 26.925 9.300469 \r\nL 244.365 9.300469 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n  </g>\r\n </g>\r\n <defs>\r\n  <clipPath id=\"pca8c235019\">\r\n   <rect height=\"217.44\" width=\"217.44\" x=\"26.925\" y=\"9.300469\"/>\r\n  </clipPath>\r\n </defs>\r\n</svg>\r\n",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "source": [
    "plt.imshow(train_x_orig[8])"
   ]
  },
  {
   "source": [
    "# 2. 2层神经网络"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "m = train_x_orig.shape[0]\n",
    "n_x = n\n",
    "n_h = 7\n",
    "n_y = 1\n",
    "layers_dims = (n_x, n_h, n_y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "def init_parameters():\n",
    "    w1 = np.random.randn(n_h, n_x) * 0.01\n",
    "    w2 = np.random.randn(n_y, n_h) * 0.01\n",
    "    b1 = np.zeros((n_h, 1))\n",
    "    b2 = np.zeros((n_y, 1))\n",
    "    parameters = {'w1': w1, 'w2': w2, 'b1': b1, 'b2': b2}\n",
    "    return parameters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x2122b132d60>]"
      ]
     },
     "metadata": {},
     "execution_count": 70
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": "<Figure size 360x288 with 1 Axes>",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"248.518125pt\" version=\"1.1\" viewBox=\"0 0 316.303125 248.518125\" width=\"316.303125pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n   <cc:Work>\r\n    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n    <dc:date>2021-03-28T13:58:18.777187</dc:date>\r\n    <dc:format>image/svg+xml</dc:format>\r\n    <dc:creator>\r\n     <cc:Agent>\r\n      <dc:title>Matplotlib v3.3.3, https://matplotlib.org/</dc:title>\r\n     </cc:Agent>\r\n    </dc:creator>\r\n   </cc:Work>\r\n  </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n  <g id=\"patch_1\">\r\n   <path d=\"M 0 248.518125 \r\nL 316.303125 248.518125 \r\nL 316.303125 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n  </g>\r\n  <g id=\"axes_1\">\r\n   <g id=\"patch_2\">\r\n    <path d=\"M 30.103125 224.64 \r\nL 309.103125 224.64 \r\nL 309.103125 7.2 \r\nL 30.103125 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n   </g>\r\n   <g id=\"matplotlib.axis_1\">\r\n    <g id=\"xtick_1\">\r\n     <g id=\"line2d_1\">\r\n      <defs>\r\n       <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"m1648f98d56\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n      </defs>\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"68.151116\" xlink:href=\"#m1648f98d56\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_1\">\r\n      <!-- −4 -->\r\n      <g transform=\"translate(60.780022 239.238437)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 10.59375 35.5 \r\nL 73.1875 35.5 \r\nL 73.1875 27.203125 \r\nL 10.59375 27.203125 \r\nz\r\n\" id=\"DejaVuSans-8722\"/>\r\n        <path d=\"M 37.796875 64.3125 \r\nL 12.890625 25.390625 \r\nL 37.796875 25.390625 \r\nz\r\nM 35.203125 72.90625 \r\nL 47.609375 72.90625 \r\nL 47.609375 25.390625 \r\nL 58.015625 25.390625 \r\nL 58.015625 17.1875 \r\nL 47.609375 17.1875 \r\nL 47.609375 0 \r\nL 37.796875 0 \r\nL 37.796875 17.1875 \r\nL 4.890625 17.1875 \r\nL 4.890625 26.703125 \r\nz\r\n\" id=\"DejaVuSans-52\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-52\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_2\">\r\n     <g id=\"line2d_2\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"118.883462\" xlink:href=\"#m1648f98d56\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_2\">\r\n      <!-- −2 -->\r\n      <g transform=\"translate(111.512368 239.238437)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 19.1875 8.296875 \r\nL 53.609375 8.296875 \r\nL 53.609375 0 \r\nL 7.328125 0 \r\nL 7.328125 8.296875 \r\nQ 12.9375 14.109375 22.625 23.890625 \r\nQ 32.328125 33.6875 34.8125 36.53125 \r\nQ 39.546875 41.84375 41.421875 45.53125 \r\nQ 43.3125 49.21875 43.3125 52.78125 \r\nQ 43.3125 58.59375 39.234375 62.25 \r\nQ 35.15625 65.921875 28.609375 65.921875 \r\nQ 23.96875 65.921875 18.8125 64.3125 \r\nQ 13.671875 62.703125 7.8125 59.421875 \r\nL 7.8125 69.390625 \r\nQ 13.765625 71.78125 18.9375 73 \r\nQ 24.125 74.21875 28.421875 74.21875 \r\nQ 39.75 74.21875 46.484375 68.546875 \r\nQ 53.21875 62.890625 53.21875 53.421875 \r\nQ 53.21875 48.921875 51.53125 44.890625 \r\nQ 49.859375 40.875 45.40625 35.40625 \r\nQ 44.1875 33.984375 37.640625 27.21875 \r\nQ 31.109375 20.453125 19.1875 8.296875 \r\nz\r\n\" id=\"DejaVuSans-50\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-50\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_3\">\r\n     <g id=\"line2d_3\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"169.615808\" xlink:href=\"#m1648f98d56\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_3\">\r\n      <!-- 0 -->\r\n      <g transform=\"translate(166.434558 239.238437)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_4\">\r\n     <g id=\"line2d_4\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"220.348154\" xlink:href=\"#m1648f98d56\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_4\">\r\n      <!-- 2 -->\r\n      <g transform=\"translate(217.166904 239.238437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-50\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_5\">\r\n     <g id=\"line2d_5\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"271.0805\" xlink:href=\"#m1648f98d56\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_5\">\r\n      <!-- 4 -->\r\n      <g transform=\"translate(267.89925 239.238437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-52\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n   </g>\r\n   <g id=\"matplotlib.axis_2\">\r\n    <g id=\"ytick_1\">\r\n     <g id=\"line2d_6\">\r\n      <defs>\r\n       <path d=\"M 0 0 \r\nL -3.5 0 \r\n\" id=\"m23d4c13a6f\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n      </defs>\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m23d4c13a6f\" y=\"216.097316\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_6\">\r\n      <!-- 0.0 -->\r\n      <g transform=\"translate(7.2 219.896535)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 10.6875 12.40625 \r\nL 21 12.40625 \r\nL 21 0 \r\nL 10.6875 0 \r\nz\r\n\" id=\"DejaVuSans-46\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_2\">\r\n     <g id=\"line2d_7\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m23d4c13a6f\" y=\"176.026123\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_7\">\r\n      <!-- 0.2 -->\r\n      <g transform=\"translate(7.2 179.825342)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-50\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_3\">\r\n     <g id=\"line2d_8\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m23d4c13a6f\" y=\"135.95493\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_8\">\r\n      <!-- 0.4 -->\r\n      <g transform=\"translate(7.2 139.754149)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-52\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_4\">\r\n     <g id=\"line2d_9\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m23d4c13a6f\" y=\"95.883737\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_9\">\r\n      <!-- 0.6 -->\r\n      <g transform=\"translate(7.2 99.682956)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 33.015625 40.375 \r\nQ 26.375 40.375 22.484375 35.828125 \r\nQ 18.609375 31.296875 18.609375 23.390625 \r\nQ 18.609375 15.53125 22.484375 10.953125 \r\nQ 26.375 6.390625 33.015625 6.390625 \r\nQ 39.65625 6.390625 43.53125 10.953125 \r\nQ 47.40625 15.53125 47.40625 23.390625 \r\nQ 47.40625 31.296875 43.53125 35.828125 \r\nQ 39.65625 40.375 33.015625 40.375 \r\nz\r\nM 52.59375 71.296875 \r\nL 52.59375 62.3125 \r\nQ 48.875 64.0625 45.09375 64.984375 \r\nQ 41.3125 65.921875 37.59375 65.921875 \r\nQ 27.828125 65.921875 22.671875 59.328125 \r\nQ 17.53125 52.734375 16.796875 39.40625 \r\nQ 19.671875 43.65625 24.015625 45.921875 \r\nQ 28.375 48.1875 33.59375 48.1875 \r\nQ 44.578125 48.1875 50.953125 41.515625 \r\nQ 57.328125 34.859375 57.328125 23.390625 \r\nQ 57.328125 12.15625 50.6875 5.359375 \r\nQ 44.046875 -1.421875 33.015625 -1.421875 \r\nQ 20.359375 -1.421875 13.671875 8.265625 \r\nQ 6.984375 17.96875 6.984375 36.375 \r\nQ 6.984375 53.65625 15.1875 63.9375 \r\nQ 23.390625 74.21875 37.203125 74.21875 \r\nQ 40.921875 74.21875 44.703125 73.484375 \r\nQ 48.484375 72.75 52.59375 71.296875 \r\nz\r\n\" id=\"DejaVuSans-54\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-54\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_5\">\r\n     <g id=\"line2d_10\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m23d4c13a6f\" y=\"55.812544\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_10\">\r\n      <!-- 0.8 -->\r\n      <g transform=\"translate(7.2 59.611763)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 31.78125 34.625 \r\nQ 24.75 34.625 20.71875 30.859375 \r\nQ 16.703125 27.09375 16.703125 20.515625 \r\nQ 16.703125 13.921875 20.71875 10.15625 \r\nQ 24.75 6.390625 31.78125 6.390625 \r\nQ 38.8125 6.390625 42.859375 10.171875 \r\nQ 46.921875 13.96875 46.921875 20.515625 \r\nQ 46.921875 27.09375 42.890625 30.859375 \r\nQ 38.875 34.625 31.78125 34.625 \r\nz\r\nM 21.921875 38.8125 \r\nQ 15.578125 40.375 12.03125 44.71875 \r\nQ 8.5 49.078125 8.5 55.328125 \r\nQ 8.5 64.0625 14.71875 69.140625 \r\nQ 20.953125 74.21875 31.78125 74.21875 \r\nQ 42.671875 74.21875 48.875 69.140625 \r\nQ 55.078125 64.0625 55.078125 55.328125 \r\nQ 55.078125 49.078125 51.53125 44.71875 \r\nQ 48 40.375 41.703125 38.8125 \r\nQ 48.828125 37.15625 52.796875 32.3125 \r\nQ 56.78125 27.484375 56.78125 20.515625 \r\nQ 56.78125 9.90625 50.3125 4.234375 \r\nQ 43.84375 -1.421875 31.78125 -1.421875 \r\nQ 19.734375 -1.421875 13.25 4.234375 \r\nQ 6.78125 9.90625 6.78125 20.515625 \r\nQ 6.78125 27.484375 10.78125 32.3125 \r\nQ 14.796875 37.15625 21.921875 38.8125 \r\nz\r\nM 18.3125 54.390625 \r\nQ 18.3125 48.734375 21.84375 45.5625 \r\nQ 25.390625 42.390625 31.78125 42.390625 \r\nQ 38.140625 42.390625 41.71875 45.5625 \r\nQ 45.3125 48.734375 45.3125 54.390625 \r\nQ 45.3125 60.0625 41.71875 63.234375 \r\nQ 38.140625 66.40625 31.78125 66.40625 \r\nQ 25.390625 66.40625 21.84375 63.234375 \r\nQ 18.3125 60.0625 18.3125 54.390625 \r\nz\r\n\" id=\"DejaVuSans-56\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-56\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_6\">\r\n     <g id=\"line2d_11\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m23d4c13a6f\" y=\"15.741351\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_11\">\r\n      <!-- 1.0 -->\r\n      <g transform=\"translate(7.2 19.54057)scale(0.1 -0.1)\">\r\n       <defs>\r\n        <path d=\"M 12.40625 8.296875 \r\nL 28.515625 8.296875 \r\nL 28.515625 63.921875 \r\nL 10.984375 60.40625 \r\nL 10.984375 69.390625 \r\nL 28.421875 72.90625 \r\nL 38.28125 72.90625 \r\nL 38.28125 8.296875 \r\nL 54.390625 8.296875 \r\nL 54.390625 0 \r\nL 12.40625 0 \r\nz\r\n\" id=\"DejaVuSans-49\"/>\r\n       </defs>\r\n       <use xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n   </g>\r\n   <g id=\"line2d_12\">\r\n    <path clip-path=\"url(#p5148065285)\" d=\"M 42.784943 214.756364 \r\nL 52.576286 214.130861 \r\nL 60.794926 213.388576 \r\nL 67.897454 212.52889 \r\nL 74.188265 211.54733 \r\nL 79.844922 210.44273 \r\nL 84.994255 209.213763 \r\nL 89.737729 207.856535 \r\nL 94.17681 206.357134 \r\nL 98.336862 204.719866 \r\nL 102.293985 202.925334 \r\nL 106.073545 200.968757 \r\nL 109.726274 198.827554 \r\nL 113.252172 196.504065 \r\nL 116.701971 193.964992 \r\nL 120.101038 191.185969 \r\nL 123.449373 188.160908 \r\nL 126.797708 184.833964 \r\nL 130.146043 181.191025 \r\nL 133.519744 177.189849 \r\nL 136.969543 172.748094 \r\nL 140.495442 167.840664 \r\nL 144.14817 162.370722 \r\nL 148.003829 156.188182 \r\nL 152.138515 149.12722 \r\nL 156.704426 140.878081 \r\nL 162.132787 130.589352 \r\nL 170.376793 114.416777 \r\nL 179.584714 96.483868 \r\nL 184.91161 86.598769 \r\nL 189.452155 78.630885 \r\nL 193.561475 71.859668 \r\nL 197.417134 65.928542 \r\nL 201.095229 60.673574 \r\nL 204.646493 55.982535 \r\nL 208.121659 51.756582 \r\nL 211.546092 47.939337 \r\nL 214.945159 44.480596 \r\nL 218.344226 41.336845 \r\nL 221.76866 38.471238 \r\nL 225.243825 35.853254 \r\nL 228.769723 33.474293 \r\nL 232.397086 31.294877 \r\nL 236.15128 29.299994 \r\nL 240.05767 27.47816 \r\nL 244.141624 25.820606 \r\nL 248.453874 24.312272 \r\nL 253.045151 22.944246 \r\nL 257.966189 21.711923 \r\nL 263.318451 20.603729 \r\nL 269.203403 19.616427 \r\nL 275.747876 18.748442 \r\nL 283.154798 17.995519 \r\nL 291.703199 17.355818 \r\nL 296.421307 17.083636 \r\nL 296.421307 17.083636 \r\n\" style=\"fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;\"/>\r\n   </g>\r\n   <g id=\"patch_3\">\r\n    <path d=\"M 30.103125 224.64 \r\nL 30.103125 7.2 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_4\">\r\n    <path d=\"M 309.103125 224.64 \r\nL 309.103125 7.2 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_5\">\r\n    <path d=\"M 30.103125 224.64 \r\nL 309.103125 224.64 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_6\">\r\n    <path d=\"M 30.103125 7.2 \r\nL 309.103125 7.2 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n  </g>\r\n </g>\r\n <defs>\r\n  <clipPath id=\"p5148065285\">\r\n   <rect height=\"217.44\" width=\"279\" x=\"30.103125\" y=\"7.2\"/>\r\n  </clipPath>\r\n </defs>\r\n</svg>\r\n",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "source": [
    "def sigmoid(z):\n",
    "    return 1/(1+np.exp(-z))\n",
    "plt.plot(np.arange(-5,5,0.001), sigmoid(np.arange(-5,5,0.001)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "def desigmoid(z):\n",
    "    return sigmoid(z) * (1 - sigmoid(z))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [],
   "source": [
    "def layer2_model(train_x, train_y, m, learning_rate=0.075, num_iterations=3000):\n",
    "    # get parameters\n",
    "    parameters = init_parameters()\n",
    "    w1 = parameters['w1']\n",
    "    w2 = parameters['w2']\n",
    "    b1 = parameters['b1']\n",
    "    b2 = parameters['b2']\n",
    "    # start iteration\n",
    "    for i in range(1, num_iterations):\n",
    "        # propagate\n",
    "        z1 = np.matmul(w1, train_x) + b1\n",
    "        a1 = sigmoid(z1)\n",
    "\n",
    "        z2 = np.matmul(w2, a1) + b2\n",
    "        a2 = sigmoid(z2)\n",
    "        # calculate loss function\n",
    "        L = - train_y * np.log(a2) - (1-train_y) * np.log(1-a2)\n",
    "        J = -np.sum(L)/m\n",
    "        # print(J)\n",
    "        # back_prapagate\n",
    "        # layer1\n",
    "        dz2 = a2 - train_y\n",
    "        dw2 = np.matmul(dz2, a1.T)/m\n",
    "        db2 = np.sum(dz2,axis=1,keepdims=True)/m\n",
    "        # layer2\n",
    "        dz1 = np.matmul(w2.T, dz2)*(a1-np.power(a1,2))\n",
    "        dw1 = np.matmul(dz1, train_x.T)/m\n",
    "        db1 = np.sum(dz1,axis=1,keepdims=True)/m\n",
    "        # update parameters\n",
    "        w1 -= dw1*learning_rate\n",
    "        w2 -= dw2*learning_rate\n",
    "        b1 -= db1*learning_rate\n",
    "        b2 -= db2*learning_rate\n",
    "    # return parameters\n",
    "    parameters['w1'] = w1\n",
    "    parameters['w2'] = w2\n",
    "    parameters['b1'] = b1\n",
    "    parameters['b2'] = b2\n",
    "    return parameters, J\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "parameters,J = layer2_model(train_x, train_y, m)"
   ]
  },
  {
   "source": [
    "# 3. 使用测试集进行预测"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [],
   "source": [
    "def predict(parameters, test_x, test_y):\n",
    "    # 预测函数\n",
    "    w1 = parameters['w1']\n",
    "    # print('w1 ' + str(w1.shape))\n",
    "    w2 = parameters['w2']\n",
    "    # print('w2 ' + str(w2.shape))\n",
    "    b1 = parameters['b1']\n",
    "    # print('b1 ' + str(b1.shape))\n",
    "    b2 = parameters['b2']\n",
    "    # print('b2 ' + str(b2.shape))\n",
    "    # propagate\n",
    "    z1 = np.matmul(w1, test_x) + b1\n",
    "    a1 = sigmoid(z1)\n",
    "\n",
    "    z2 = np.matmul(w2, a1) + b2\n",
    "    a2 = sigmoid(z2)\n",
    "\n",
    "    prediction = a2.copy()\n",
    "    prediction[prediction>0.5] = 1\n",
    "    prediction[prediction<0.5] = 0\n",
    "\n",
    "    accurate = np.abs(prediction - test_y)\n",
    "    # print(accurate[accurate==0].shape[0])\n",
    "    # print(accurate.shape[1])\n",
    "    return accurate[accurate==0].shape[0]/accurate.shape[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "accuracy rate = 0.72\n"
     ]
    }
   ],
   "source": [
    "accur = predict(parameters, test_x, test_y)\n",
    "print('accuracy rate = ' + str(accur))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "After 300 iteration, accurate  = 0.5, Cost Function = -0.47282033451692707\n",
      "After 600 iteration, accurate  = 0.48, Cost Function = -0.3661432834275557\n",
      "After 900 iteration, accurate  = 0.62, Cost Function = -0.224393658867699\n",
      "After 1200 iteration, accurate  = 0.7, Cost Function = -0.1277522409142692\n",
      "After 1500 iteration, accurate  = 0.68, Cost Function = -0.0744909918372703\n",
      "After 1800 iteration, accurate  = 0.72, Cost Function = -0.056504379231156004\n",
      "After 2100 iteration, accurate  = 0.7, Cost Function = -0.036053753709203135\n",
      "After 2400 iteration, accurate  = 0.72, Cost Function = -0.0317879980525948\n",
      "After 2700 iteration, accurate  = 0.72, Cost Function = -0.02361345878132693\n"
     ]
    }
   ],
   "source": [
    "for i in range(1,10):\n",
    "    parameters, J = layer2_model(train_x, train_y, m, num_iterations=300*i)\n",
    "    accur = predict(parameters, test_x, test_y)\n",
    "    print('After ' + str(300*i) + ' iteration, accurate  = ' + str(accur) + ', Cost Function = ' + str(J))"
   ]
  },
  {
   "source": [
    "最终，迭代3000次准确率达到72%，结果并不理想"
   ],
   "cell_type": "markdown",
   "metadata": {}
  }
 ],
 "metadata": {
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3.9.2 64-bit",
   "metadata": {
    "interpreter": {
     "hash": "4ce0e62306dd6a5716965d4519ada776f947e6dfc145b604b11307c10277ef29"
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}